package com.leyou.item.service;

import com.leyou.item.dto.SkuDTO;
import com.leyou.item.dto.SpuDTO;
import com.leyou.item.dto.SpuDetailDTO;
import com.leyou.vo.PageResult;

import java.util.List;

public interface IGoodsService {
    /**
     * 分页查询商品
     * @param key
     * @param saleable
     * @param page
     * @param rows
     * @return
     */
    PageResult<SpuDTO> querySpuByPage(String key, Boolean saleable, Integer page, Integer rows);

    /**
     * 新增商品
     * @param spuDTO
     */
    void saveGoods(SpuDTO spuDTO);

    /**
     * 商品上下架功能
     * @param id
     * @param saleable
     */
    void updateSaleable(Long id, Boolean saleable);

    /**
     * 修改商品->数据回显
     * 根据id查询SpuDetail
     * @param id
     * @return
     */
    SpuDetailDTO querySpuDetailBySpu(Long id);

    /**
     * 修改商品->数据回显
     * 根据spuId查询Sku
     * @param id
     * @return
     */
    List<SkuDTO> querySkuBySpu(Long id);

    /**
     * 修改商品实现
     * @param spuDTO
     */
    void updateGoods(SpuDTO spuDTO);

    /**
     * 根据spu的id查询spu
     * 包括detail和skus
     * @param id
     * @return
     */
    SpuDTO querySpuById(Long id);
}
